Add provider capability matrix#259
Conversation
|
Warning Review limit reached
More reviews will be available in 43 minutes and 22 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses rolling per-developer review limits. Reviews become available again as older review attempts age out of the rolling limit window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughA provider capability registry is introduced in ChangesProvider Capability Matrix Registry and CI Drift Check
Sequence Diagram(s)sequenceDiagram
rect rgba(70, 130, 180, 0.5)
Note over Makefile,FS: make build / make check
end
participant Makefile
participant CLI as coding-ethos-agent-hooks
participant Reg as ProviderCapabilities()
participant MD as ProviderCapabilityMatrixMarkdown()
participant FS as docs/PROVIDER_CAPABILITY_MATRIX.md
Makefile->>CLI: sync-provider-matrix --root .
CLI->>Reg: enumerate Claude/Codex/Gemini/Generic
Reg-->>CLI: []ProviderCapability
CLI->>MD: render report string
MD-->>CLI: Markdown string
CLI->>FS: MkdirAll + WriteFile
FS-->>CLI: ok
CLI-->>Makefile: exit 0
Makefile->>CLI: check-provider-matrix --root .
CLI->>FS: ReadFile current report
FS-->>CLI: on-disk content
CLI->>Reg: enumerate providers
CLI->>MD: render fresh report
MD-->>CLI: fresh Markdown string
CLI->>CLI: compare strings
alt no drift
CLI-->>Makefile: exit 0
else drift detected
CLI-->>Makefile: exit 1 + drift error
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces a generated Provider Capability Matrix to document supported, partially supported, and unsupported adapter surfaces across different providers. It adds CLI commands and Makefile targets to sync and check the matrix, updates relevant documentation, and defines a generic fallback provider. Review feedback suggests setting the generated markdown file's permissions to 0o644 for standard readability, caching the static provider capabilities slice to avoid unnecessary allocations, removing redundant filepath.Clean calls, and avoiding unnecessary URL-escaping of slashes in the markdown output to improve document readability.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Makefile`:
- Around line 575-587: The check-provider-matrix target has incorrect
prerequisites and should match the dependencies of sync-provider-matrix since
both invoke the same binary $(GO_TOOLS_BIN_DIR)/coding-ethos-agent-hooks. Change
the prerequisite list for the check-provider-matrix target from
ensure-hook-runtime to ensure-go go-tools-install to ensure the Go tools and
binary are properly built before the target runs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: cb678c85-12fc-4c33-9a31-717336ff903d
📒 Files selected for processing (12)
MakefileREADME.mddocs/INTEGRATIONS.mddocs/PROVIDER_CAPABILITY_MATRIX.mddocs/index.mdgo/internal/agenthooks/provider_capabilities.gogo/internal/agenthooks/settings.gogo/internal/agenthooks/settings_test.gogo/internal/agenthooks/spec.gogo/internal/agenthookscli/main.gogo/internal/agenthookscli/main_internal_test.gotests/TESTS.md
📜 Review details
⏰ Context from checks skipped due to timeout. (8)
- GitHub Check: Test (Python 3.11)
- GitHub Check: Go coverage
- GitHub Check: Coding Ethos SARIF Gate / Coding Ethos SARIF Gate
- GitHub Check: Validate GitHub workflows
- GitHub Check: Unified lint
- GitHub Check: Test (Python 3.13)
- GitHub Check: Go fuzz smoke
- GitHub Check: CodeQL (go)
🧰 Additional context used
📓 Path-based instructions (1)
Makefile
📄 CodeRabbit inference engine (AGENTS.md)
Makefile: Usemake installto install dependencies
Usemake checkas the canonical automated verification gate; usemake testoruv run pytestonly as focused Python-test helpers
Files:
Makefile
🧠 Learnings (1)
📚 Learning: 2026-06-23T12:26:47.373Z
Learnt from: paudley
Repo: paudley/coding-ethos PR: 258
File: go/internal/geminiprompts/render.go:125-132
Timestamp: 2026-06-23T12:26:47.373Z
Learning: In the paudley/coding-ethos repo, the documented guideline “Gemini prompt pack should be generated in go/internal/geminiprompts/” refers to the generator implementation location (Go source), not the location of the generated prompt-pack artifact. Always treat PromptPackPath as the enforced output artifact path `.coding-ethos/gemini/prompt-pack.json` (e.g., render_test.go asserts PromptPackPath, and compiler_policies.go / hookrunner lookup / README document the expected path). Do not flag a code review issue just because PromptPackPath points to `.coding-ethos/gemini/prompt-pack.json`; only flag violations if the artifact output path logic breaks that enforced contract.
Applied to files:
go/internal/agenthooks/spec.gogo/internal/agenthookscli/main.gogo/internal/agenthookscli/main_internal_test.gogo/internal/agenthooks/provider_capabilities.gogo/internal/agenthooks/settings.gogo/internal/agenthooks/settings_test.go
🪛 checkmake (0.3.2)
Makefile
[warning] 445-445: Target "check" should be declared PHONY.
(phonydeclared)
[warning] 587-587: Target "build" should be declared PHONY.
(phonydeclared)
🔇 Additional comments (10)
go/internal/agenthooks/settings_test.go (1)
40-47: LGTM!Also applies to: 79-79, 93-110, 121-208, 302-302, 534-534, 693-698, 747-747, 756-756, 1130-1158
go/internal/agenthookscli/main_internal_test.go (1)
122-133: LGTM!Also applies to: 150-153
go/internal/agenthookscli/main.go (4)
23-28: LGTM!
48-51: LGTM!
204-245: LGTM!
285-287: LGTM!Makefile (1)
445-445: LGTM!go/internal/agenthooks/settings.go (1)
93-109: LGTM!Also applies to: 983-1010
go/internal/agenthooks/spec.go (1)
16-17: LGTM!go/internal/agenthooks/provider_capabilities.go (1)
1-421: LGTM!
|
Stage 2 update Addressed the provider matrix review feedback in commit
I did not apply the static cached slice suggestion because the repo hook blocks package globals with Validation run:
All passed. The Go coverage warning below the 90% project goal remains non-blocking. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@go/internal/agenthooks/settings.go`:
- Around line 328-345: The syncSettingsFile and syncTextSettingsFile functions
contain identical directory creation and file writing logic with the same error
wrapping patterns. Extract the common MkdirAll and WriteFile block into a new
helper function called writeSettingsFile that accepts path and content string
parameters and returns an error. This helper should handle both the directory
creation and file writing with their respective error messages. Then refactor
both syncSettingsFile and syncTextSettingsFile to call this helper function with
the appropriate path and rendered content instead of duplicating the write
logic.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 93a429dd-9db5-451a-983b-e6c46f07ec5c
📒 Files selected for processing (13)
MakefileREADME.mddocs/INTEGRATIONS.mddocs/PROVIDER_CAPABILITY_MATRIX.mddocs/index.mdgo/internal/agenthooks/provider_capabilities.gogo/internal/agenthooks/settings.gogo/internal/agenthooks/settings_test.gogo/internal/agenthookscli/main.gogo/internal/agenthookscli/main_internal_test.gogo/internal/celexpr/helpers.gogo/internal/codeintelcli/main_internal_test.gogo/internal/evaluators/cel_expression_test.go
📜 Review details
⏰ Context from checks skipped due to timeout. (8)
- GitHub Check: Go coverage
- GitHub Check: Test (Python 3.11)
- GitHub Check: Coding Ethos SARIF Gate / Coding Ethos SARIF Gate
- GitHub Check: Unified lint
- GitHub Check: Validate GitHub workflows
- GitHub Check: Test (Python 3.13)
- GitHub Check: CodeQL (go)
- GitHub Check: Go fuzz smoke
🧰 Additional context used
📓 Path-based instructions (1)
Makefile
📄 CodeRabbit inference engine (AGENTS.md)
Makefile: Usemake installto install dependencies
Usemake checkas the canonical automated verification gate; usemake testoruv run pytestonly as focused Python-test helpers
Files:
Makefile
🧠 Learnings (1)
📚 Learning: 2026-06-23T12:26:47.373Z
Learnt from: paudley
Repo: paudley/coding-ethos PR: 258
File: go/internal/geminiprompts/render.go:125-132
Timestamp: 2026-06-23T12:26:47.373Z
Learning: In the paudley/coding-ethos repo, the documented guideline “Gemini prompt pack should be generated in go/internal/geminiprompts/” refers to the generator implementation location (Go source), not the location of the generated prompt-pack artifact. Always treat PromptPackPath as the enforced output artifact path `.coding-ethos/gemini/prompt-pack.json` (e.g., render_test.go asserts PromptPackPath, and compiler_policies.go / hookrunner lookup / README document the expected path). Do not flag a code review issue just because PromptPackPath points to `.coding-ethos/gemini/prompt-pack.json`; only flag violations if the artifact output path logic breaks that enforced contract.
Applied to files:
go/internal/celexpr/helpers.gogo/internal/codeintelcli/main_internal_test.gogo/internal/evaluators/cel_expression_test.gogo/internal/agenthookscli/main_internal_test.gogo/internal/agenthookscli/main.gogo/internal/agenthooks/settings_test.gogo/internal/agenthooks/provider_capabilities.gogo/internal/agenthooks/settings.go
🔇 Additional comments (6)
go/internal/agenthookscli/main.go (1)
17-17: LGTM!Also applies to: 100-155, 157-162, 326-333
Makefile (1)
33-34: LGTM!Also applies to: 583-588
go/internal/agenthooks/settings_test.go (1)
20-20: LGTM!Also applies to: 166-172, 208-219, 255-297
go/internal/agenthookscli/main_internal_test.go (1)
8-15: LGTM!Also applies to: 103-165, 203-256
go/internal/agenthooks/settings.go (1)
347-370: LGTM!Also applies to: 391-407
go/internal/agenthooks/provider_capabilities.go (1)
16-16: LGTM!Also applies to: 298-298
There was a problem hiding this comment.
Caution
Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@go/internal/agenthooks/settings.go`:
- Around line 328-345: The syncSettingsFile and syncTextSettingsFile functions
contain identical directory creation and file writing logic with the same error
wrapping patterns. Extract the common MkdirAll and WriteFile block into a new
helper function called writeSettingsFile that accepts path and content string
parameters and returns an error. This helper should handle both the directory
creation and file writing with their respective error messages. Then refactor
both syncSettingsFile and syncTextSettingsFile to call this helper function with
the appropriate path and rendered content instead of duplicating the write
logic.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 93a429dd-9db5-451a-983b-e6c46f07ec5c
📒 Files selected for processing (13)
MakefileREADME.mddocs/INTEGRATIONS.mddocs/PROVIDER_CAPABILITY_MATRIX.mddocs/index.mdgo/internal/agenthooks/provider_capabilities.gogo/internal/agenthooks/settings.gogo/internal/agenthooks/settings_test.gogo/internal/agenthookscli/main.gogo/internal/agenthookscli/main_internal_test.gogo/internal/celexpr/helpers.gogo/internal/codeintelcli/main_internal_test.gogo/internal/evaluators/cel_expression_test.go
📜 Review details
🔇 Additional comments (6)
go/internal/agenthookscli/main.go (1)
17-17: LGTM!Also applies to: 100-155, 157-162, 326-333
Makefile (1)
33-34: LGTM!Also applies to: 583-588
go/internal/agenthooks/settings_test.go (1)
20-20: LGTM!Also applies to: 166-172, 208-219, 255-297
go/internal/agenthookscli/main_internal_test.go (1)
8-15: LGTM!Also applies to: 103-165, 203-256
go/internal/agenthooks/settings.go (1)
347-370: LGTM!Also applies to: 391-407
go/internal/agenthooks/provider_capabilities.go (1)
16-16: LGTM!Also applies to: 298-298
🛑 Comments failed to post (1)
go/internal/agenthooks/settings.go (1)
328-345: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value
Extract the duplicated directory+write block into a shared helper.
syncSettingsFile(Lines 334-344) andsyncTextSettingsFile(Lines 378-388) contain identicalMkdirAll+WriteFilelogic with the same error wrapping. A small helper keeps the two write paths from drifting.♻️ Proposed helper
func writeSettingsFile(path, content string) error { if err := os.MkdirAll(filepath.Dir(path), settingsDirMode); err != nil { return fmt.Errorf("create settings directory: %w", err) } if err := os.WriteFile(path, []byte(content), settingsFileMode); err != nil { return fmt.Errorf("write settings: %w", err) } return nil }Then both
syncSettingsFileandsyncTextSettingsFilecanreturn writeSettingsFile(path, content)after rendering.Also applies to: 372-389
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@go/internal/agenthooks/settings.go` around lines 328 - 345, The syncSettingsFile and syncTextSettingsFile functions contain identical directory creation and file writing logic with the same error wrapping patterns. Extract the common MkdirAll and WriteFile block into a new helper function called writeSettingsFile that accepts path and content string parameters and returns an error. This helper should handle both the directory creation and file writing with their respective error messages. Then refactor both syncSettingsFile and syncTextSettingsFile to call this helper function with the appropriate path and rendered content instead of duplicating the write logic.
Closes #179
Summary
docs/PROVIDER_CAPABILITY_MATRIX.mdfrom that registry and wiresmake build/make checkto sync and verify drift.Validation
cd go && go test -buildvcs=false ./internal/agenthooks ./internal/agenthooksclimake buildmake checkNotes